package com.qijian.maindata.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.qijian.common.enums.ApprovalDescriptionEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qijian.common.annotation.Excel;
import com.qijian.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 生产BOM对象 main_bom
 *
 * @author qijian
 * @date 2021-09-01
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString
@TableName("main_bom")
public class Bom extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** ID */
    @TableId
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "ID")
    private Long bomId;

    /** BOM编码 */
    @Excel(name = "BOM编码")
    @ApiModelProperty(value = "BOM编码")
    private String bomCode;

    /** 负责人 */
    @Excel(name = "负责人")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "负责人")
    private Long userId;

    /** 负责人名称 */
    @Excel(name = "负责人名称")
    @ApiModelProperty(value = "负责人名称")
    private String nickName;

    /** BOM版本 */
    @Excel(name = "BOM版本")
    @ApiModelProperty(value = "BOM版本")
    private String bomVersion;

    /** 物料ID */
    @Excel(name = "物料ID")
    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "物料ID")
    private Long itemId;

    /** 物料编码 */
    @Excel(name = "物料编码")
    @ApiModelProperty(value = "物料编码")
    private String itemCode;

    /** 是否禁用 */
    @Excel(name = "是否禁用")
    @ApiModelProperty(value = "是否禁用")
    private Boolean isDisabled;

    /** BOM状态 */
    @Excel(name = "BOM状态")
    @ApiModelProperty(value = "BOM状态")
    private String bomStatus;

    /** 审核者 */
    @Excel(name = "审核者")
    @ApiModelProperty(value = "审核者")
    private String approvalBy;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "审核时间")
    private Date approvalTime;

    /** 审核状态 */
    @Excel(name = "审核状态")
    @ApiModelProperty(value = "审核状态")
    private ApprovalDescriptionEnum approvalStatus;

    @ApiModelProperty(value = "质量工程师id")
    private Long qualityEngineerId;

    @ApiModelProperty(value = "质量工程师名称")
    private String qualityEngineerName;

    @ApiModelProperty(value = "bom类型(同项目管理 项目类型):产品,工装,费用")
    private String bomType;

    @ApiModelProperty(value = "bom时间")
    private String bomTime;
}
